# 7.11-3
# 合并数组
# * 给你两个按`非递减顺序`排列的整数数组nums1和nums2，另有两个整数m和n，分别表示nums1和nums2中的元素数目。
# * 请你合并nums2到nums1中，使合并后的数组同样按`非递减顺序`排列。
# * 注意：最终，合并后数组不应由函数返回，而是存储在数组 nums1 中。为了应对这种情况，nums1 的初始长度为 m + n，其中前 m 个元素表示应合并的元素，后 n 个元素为 0 ，应忽略。nums2 的长度为 n 。
# *链接：https://leetcode.cn/problems/merge-sorted-array

# -*- coding: utf-8 -*-
def merge(nums1, m, nums2, n):
    p = m + n - 1
    m -= 1
    n -= 1

    while m >= 0 and n >= 0:
        if nums1[m] > nums2[n]:
            nums1[p] = nums1[m]
            m -= 1
        else:
            nums1[p] = nums2[n]
            n -= 1
        p -= 1

    while n >= 0:
        nums1[p] = nums2[n]
        n -= 1
        p -= 1


